const fs = require("fs");
const dayjs = require("dayjs")();

/**
 *
 * @desc 此函数会将你传入的错误对象保存到json文件中
 * @param time { string } 默认 时间戳转换YYYY-MM-DD HH:mm:ss
 * @param code {string} 例如 credentials_required
 * @param name {string} 例如 mysql server 某某函数 多少行
 * @param message {string} 例如 err.message 之类的
 */
module.exports = function writeErrLog(time = dayjs.format('YYYY-MM-DD HH:mm:ss'), name, code, message) {

    //拿到字符串类型的错误日志
    let errStr = fs.readFileSync(__dirname + '/errLog.json', {encoding: 'utf8'})
    let errJson = JSON.parse(errStr)
    let errObj = {time, name, code, message}
    let len = errJson.unshift(errObj)
    if (len) {
        console.log('记录一条错误日志', message || "")
    }
    errJson.createdAt = new Date().toISOString();
    fs.writeFileSync(__dirname + '/errLog.json', JSON.stringify(errJson, null, 2), {
        flag: 'r+',
        encoding: 'utf8',
    });
}
